export const defaultConfig = {
  node: {
    // 节点的默认配置
    label: {
      // 标签配置
      show: true, // 是否显示
      color: '50,50,50', // 字体颜色
      font: '12px 微软雅黑', // 字体大小及类型
      wrapText: false, // 节点包裹文字
      textPosition: 'Middle_Center', // 文字位置 Top_Center,Bottom_Center,Middle_Right
      textOffsetX: 0, // 文字横向偏移量
      textOffsetY: 0, // 文字纵向偏移量
      backgroud: null, // 文字背景色
      borderWidth: 0, // 文字边框宽度
      borderColor: null, // 文字边框颜色
    },
    shape: 'circle', // 节点形状 circle,rect,square,ellipse,triangle,star,polygon,text
    color: '134,233,209', // 节点颜色
    borderColor: '10,10,10', // 边框颜色
    borderWidth: 0, // 边框宽度,
    borderRadius: 0, // 边框圆角大小
    lineDash: [3, 2], // 边框虚线间隔,borderWidth>0时生效
    alpha: 1, // 节点透明度
    size: 60, // 节点大小
    width: 100, // 节点的长度(shape为rect生效)
    height: 40, // 节点的高度(shape为rect生效)
    // image:'images/T1030001.svg',//节点图标(设置后节点显示为圆形图标)
    showArrow: true,
    showLabel: true,
    selected: {
      // 选中时的样式设置
      borderColor: '50,120,230', // 选中时边框颜色
      borderAlpha: 1, // 选中时的边框透明度
      borderWidth: 5, // 选中是的边框宽度
      showShadow: false, // 是否展示阴影
      shadowColor: '10,240,10', // 选中是的阴影颜色
    },
    /*
    onClick: function (event, node) {}, //节点点击事件回调
    ondblClick: function (event, node) {}, //节点双击事件回调
    onMouseDown: function (event, node) {}, //节点的鼠标按下事件
    onMouseOver: function (event, node) {}, //节点的鼠标划过事件
    onMouseOut: function (event, node) {}, //节点的鼠标划出事件
    onMousedrag: function (event, node) {}, //节点拖动事件回调
 */
  },
  link: {
    // 连线的默认配置
    label: {
      // 连线标签
      show: true, // 是否显示
      color: '20,20,20', // 字体颜色
      font: '11px 微软雅黑', // 字体大小及类型
    },
    lineType: 'direct', // 连线类型,direct,curver,vlink,hlink,bezier,vbezier,hbezier
    colorType: 'source', // 连线颜色类型 source:继承source颜色,target:继承target颜色 both:用双边颜色，defined:自定义
    color: '10,10,10', // 连线颜色
    alpha: 1, // 连线透明度
    lineWidth: 3, // 连线宽度
    lineDash: [0], // 虚线间隔样式如：[5,8]
    showArrow: false, // 显示箭头
    showLabel: false,
    marginLeft: -40, // 对右键菜单位置进行调校的参数
    selected: {
      // 选中时的样式设置
      color: '255,0,0', // 选中时的颜色
      alpha: 1,
      lineWidth: 8,
      showShadow: false, // 是否展示阴影
      shadowColor: '10,250,10', // 选中连线时的阴影颜色
    },
    /*
   onClick: function (event, link) {}, //连线点击事件回调
   ondblClick: function (event, link) {}, //节点双击事件回调
   */
  },
  highLightNeiber: true, // 相邻节点高度标志
  wheelZoom: 0.8, // 滚轮缩放开关，不使用时不设置[0,1]
  /*  noElementClick: function (event) {}, //空白处的点击事件
  layout:{
        type:'force',
        options:{
          friction: 0.8,
          linkDistance: 120,
          linkStrength: 0.1,
          charge: -200,
          gravity: 0.01,
          noverlap:false,
        }
      } */
};

// 布局算法
export const graphLayoutTypes = [
  {
    label: '力学模型类',
    value: '力学模型类',
    children: [
      { value: 'fastFR', label: '快速弹性布局' },
      { value: 'frDirect', label: '弹簧力学布局' },
      { value: 'fruchtermanReingold', label: 'FruchReingold' },
      { value: 'spring2', label: 'SpringLayout' },
    ],
  },
  {
    label: '关系网络类',
    value: '关系网络类',
    children: [
      { value: 'fr', label: '经典网络布局' },
      { value: 'kk', label: '关系路径布局' },
      { value: 'arf', label: '球面网络布局' },
      { value: 'gather', label: '群组聚类布局' },
    ],
  },
  {
    label: '圆形类',
    value: '圆形类',
    children: [
      { value: 'concentric', label: '中心圆形布局' },
      { value: 'singleCirlce', label: '圆形布局' },
      { value: 'dualCirlce', label: '双圆环布局' },
      { value: 'layerCircle', label: '多层圆环布局' },
      { value: 'sphere', label: '球体布局' },
    ],
  },
  {
    label: '树形结构类',
    value: '树形结构类',
    children: [
      { value: 'hubsize', label: '层级布局' },
      { value: 'tree', label: '树形布局' },
      { value: 'topoCircle', label: '雪花布局' },
      { value: 'radiatree', label: '径向布局' },
      { value: 'balloon', label: '圆形层级布局' },
    ],
  },
  {
    label: '其他布局',
    value: '其他布局',
    children: [
      { value: 'hive', label: '放射形布局' },
      { value: 'layered', label: '分层布局' },
      { value: 'grid', label: '矩形布局' },
      { value: 'noverlap', label: '避免节点重叠' },
    ],
  },
];

// 聚类算法
export const graphClusterTypes = [
  { label: 'ChineseWhisper', value: 'chinesewisper' },
  { label: 'Louvain', value: 'louvain' },
  { label: 'WeakCommpent', value: 'weakcommpent' },
  { label: 'Bicomponent', value: 'bicomponet' },
  { label: 'Newman', value: 'newman' },
  { label: 'KMeans', value: 'kmeans' },
];
